package com.zyy.game.tianlong.network.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * @author relufi
 * @date 2019/7/19 0019 09:52
 */
@ConfigurationProperties("netty")
@Component
@Data
public class NettyConfig {
    /**
     * 处理IO事件线程池数量
     */
    private int workGroup = 0;
    /**
     * 业务逻辑线程池数量 0 默认为 CPU数量  * 2
     */
    private int businessGroup = 0;
    /**
     * 业务逻辑线程阻塞任务队列大小   (设置太大接收数据过多有可能内存溢出；设置太小会丢弃任务)
     */
    private int businessGroupMaxPendingTasks = 1024;
    /**
     * 端口
     */
    private int port = 5555;
    /**
     * accept等待队列大小
     */
    private int backlog = 1024;
    /**
     * TCP心跳 协议层心跳  java不能设置时间，只能在系统上设置，linux系统默认是2个小时后发送
     */
    private boolean keepalive = false;
    /**
     * Debug显示 格式化的十六进制的内容
     */
    private boolean showHexDump = false;
    /**
     * 是否启用心跳
     */
    private boolean heartBeat = false;
    /**
     * 选择使用的协议
     */
    private GameProtocol gameProtocol = GameProtocol.LENGTH_FIELD;
}
